* [SiriDB Prompt](#siridb-prompt)
* [Grafana](#grafana)
* [API/Query language](#query-language)
-
+
---------------------------------------
## Installation
### Compile from source
>From version 2.0.19 libcleri is not included as part of this source anymore
->and needs to be installed separately. libcleri can be found here:
+>and needs to be installed separately. libcleri can be found here:
>[https://github.com/transceptor-technology/libcleri](https://github.com/transceptor-technology/libcleri)
#### Linux
Install the following requirements: (Ubuntu)
```
sudo apt install libpcre2-dev
-sudo apt install libuv1-dev
-sudo apt install uuid-dev
+sudo apt install libuv1-dev
+sudo apt install uuid-dev
```
Compile (replace Release with Debug for a debug build):
brew install ossp-uuid
```
Compile (replace Release with Debug for a debug build):
-```
+```
cd ./Release
export CFLAGS="-I/usr/local/include"
export LDFLAGS="-L/usr/local/lib"
[SiriDB Admin](https://github.com/SiriDB/siridb-admin) is required for creating a new database or expanding an existing database with a new server. Documentation on how to install and use the admin tool can be found at the [siridb-admin](https://github.com/SiriDB/siridb-admin#readme) github project. Binaries are available for most platforms and can be downloaded from [here](https://github.com/SiriDB/siridb-admin/releases/latest).
## Using SiriDB
-SiriDB has several tools available to connect to a SiriDB database.
+SiriDB has several tools available to connect to a SiriDB database.
### SiriDB Connectors
The following native connectors are available:
- [Python](https://github.com/SiriDB/siridb-connector#readme)
- [Go](https://github.com/SiriDB/go-siridb-connector#readme)
- [Node.js](https://github.com/SiriDB/siridb-nodejs-addon#readme)
-
+
When not using one of the above, you can still communicate to SiriDB using [SiriDB HTTP](#siridb-http).
### SiriDB HTTP
## Query language
Documentation about the query language can be found at https://siridb.net/documentation.
+
+## Running integration
+Build integration test image
+```
+docker build -t siridb/itest -f itest/Dockerfile .
+```
+
+Run integration tests
+```
+docker run siridb/itest:latest
+```
\ No newline at end of file
result = await self.server0.stop()
self.assertTrue(result)
self.server0.set_buffer_size(self.db, buffer_size)
- await self.server0.start(sleep=5)
+ await self.server0.start(sleep=20)
await self.client0.connect()
res = await self.client0.query('show buffer_size')
self.assertEqual(res['data'][0]['value'], buffer_size)
result = await self.server0.stop()
self.assertTrue(result)
self.server0.set_buffer_path(self.db, buffer_path)
- await self.server0.start(sleep=5)
+ await self.server0.start(sleep=20)
await self.client0.connect()
res = await self.client0.query('show buffer_path')
self.assertEqual(res['data'][0]['value'], buffer_path)
result = await self.server0.stop()
self.assertTrue(result)
- await self.server0.start(sleep=10)
+ await self.server0.start(sleep=20)
await self.client0.connect()
# Check the result after rebooting the server
await self.client0.insert([{'name': '', 'points': [[1, 0]]}])
await self.db.add_replica(self.server1, 0, sleep=30)
- # await self.db.add_pool(self.server1, sleep=3)
+ # await self.db.add_pool(self.server1, sleep=30)
- await self.assertIsRunning(self.db, self.client0, timeout=3)
+ await self.assertIsRunning(self.db, self.client0, timeout=30)
await self.client1.connect()
result = await self.server0.stop()
self.assertTrue(result)
- await self.server0.start(sleep=10)
+ await self.server0.start(sleep=20)
await self.client0.connect()
await asyncio.wait_for(task1, None)
await asyncio.wait_for(task2, None)
- await asyncio.sleep(1)
+ await asyncio.sleep(2)
await self.assertSeries(self.client0, series)
await self.assertSeries(self.client1, series)
self.server1.listen_backend_port = 9111
self.server1.create()
- await self.server1.start(sleep=35)
+ await self.server1.start(sleep=20)
await asyncio.sleep(35)
{'name': 'server', 'value': 'localhost:9111'}])
await self.db.add_replica(self.server2, 1)
- await self.assertIsRunning(self.db, self.client0, timeout=10)
+ await self.assertIsRunning(self.db, self.client0, timeout=35)
with self.assertRaisesRegex(
QueryError,
result = await self.server2.stop()
self.assertTrue(result)
- await self.server1.start(sleep=10)
+ await self.server1.start(sleep=30)
result = await self.client1.query('show status')
self.assertEqual(result.pop('data'), [
async def run(self):
await self.client0.connect()
- # await self.db.add_pool(self.server1, sleep=3)
+ # await self.db.add_pool(self.server1, sleep=30)
await self.db.add_replica(self.server1, 0, sleep=30)
await self.db.add_replica(self.server1, 0)
await self.assertIsRunning(self.db, self.client0, timeout=20)
+ await asyncio.sleep(5)
await self.db.add_pool(self.server2)
await self.client1.connect()
await self.client2.connect()
- await asyncio.sleep(15)
+ await asyncio.sleep(20)
result = await self.client1.query('list users where access < full ')
self.assertEqual(result.pop('users'), [['sasientje', 'modify']])
time.sleep(2.0)
- await self.db.create_on(self.server0, sleep=2)
+ await self.db.create_on(self.server0, sleep=5)
close = await func(self)